home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / CRS / crs04.d81 / dismbl64.sfx / disassembler.doc < prev    next >
Text File  |  1990-02-12  |  9KB  |  197 lines

  1.                      8502 ╙YMBOLIC ─ISASSMEBLER ╓6.4
  2.                             BY ╩AMES ═UDGETT
  3.                      ═ODIFIED FOR ╠┴─╙ BY ╬ICK ╙MITH
  4.                                12-03-88
  5.  
  6.  
  7.  
  8. ┬┼╞╧╥┼ ┘╧╒ ╙╘┴╥╘
  9. ----------------
  10.  
  11. ╘HERE ARE A FEW THINGS YOU MUST DO BEFORE YOU CAN RUN THE DISASSEMBLER.
  12.  
  13. ╞IRST, YOU MUST SET UP A ─EFAULT ╞ILE.  ╔F YOU ARE USING ─EV╨AK 128, JUST 
  14. RENAME THE FILE 'DEVPAK.DF' TO 'DEFAULTS'.  ╔F YOU ARE USING ╠┴─╙, RENAME
  15. 'LADS' TO 'DEFAULTS'.  ╔F YOU ARE USING A DIFFERENT ASSEMBLER OR WANT TO
  16. CHANGE SOME OF THE OPTIONS IN THE INCLUDED DEFAULT FILES, YOU WILL HAVE
  17. TO USE THE 'DEFAULT MAKER' PROGRAM.  ╠OAD AND LIST 'DEFAULT MAKER'.  ─O NOT
  18. RUN IT UNTIL YOU HAVE CHANGED THE VARIABLE ASSIGNMENTS TO FIT YOUR NEEDS.
  19. ╔F YOU USE THE ╨╥╟ ╙OURCE ╞ILE TYPE, BE SURE TO 'TOKENIZE' THE ASSIGNMENTS
  20. (LIST 'DEFAULT MAKER' FOR EXAMPLES).  ╫HEN YOU ARE DONE CHANGING THE VARIABLE
  21. ASSIGNMENTS, RUN THE PROGRAM.  ╘HE DEFAULT FILE WILL BE CREATED.
  22.  
  23. ╬EXT, YOU WILL HAVE TO DECIDED WHICH ╧PCODE ╘ABLE TO USE.  ╘WO ╧PCODE ╘ABLES
  24. ARE INCLUDED: 'STANDARD.TBL' AND 'UNDOC.TBL'.  ╔F YOU WANT THE DISASSEMBLER
  25. TO RECOGNIZE ONLY THE STANDARD INSTRUCTION SET, RENAME 'STANDARD.TBL' TO
  26. 'OPCODE.TBL'.  ╔F YOU WANT UNDOCUMENTED OPCODES RECOGNIZED, RENAME 'UNDOC.TBL'
  27. TO 'OPCODE.TBL'.  ╬╧╘┼: BOTH TABLES INCLUDE THE '┴' ON ACCUMULATOR
  28. INSTRUCTIONS (I.E. ╠╙╥ ┴).  ╔F YOUR ASSEMBLER WILL NOT ACCEPT THE '┴', YOU
  29. WILL HAVE TO USE A ╙┼╤ FILE EDITOR TO CHANGE THE TABLE.  ┬E SURE TO LEAVE THE
  30. " IN FRONT OF EACH DEFINITION.  ┴N '*' IN THE TABLE INDICATES A ONE BYTE
  31. ADDRESS/VALUE; '_' A TWO BYTE ADDRESS; AND '@' A RELATIVE ADDRESS.
  32.  
  33. ╞INALLY, IF YOU WANT TO USE AN ┼QUATE ╞ILE YOU WILL HAVE TO INCLUDE THE FILE
  34. NAME IN THE ─EFAULT ╞ILE.  ┴N ┼QUATE ╞ILE IS INCLUDED.  ╔F YOU WANT TO MAKE 
  35. YOUR OWN ┼QUATE ╞ILE IT MUST BE A ╙┼╤ FILE SET UP SO THAT:
  36.     
  37.      1. ╘HE FIRST LINE IS THE NUMBER OF EQUATES IN THE FILE.
  38.      2. ┼ACH EQUATE ASSIGNMENT IS ON A SEPERATE LINE.
  39.      3. ┼ACH EQUATE ASSIGNMENT IS IN THE FORM 'EQUATE = ADDRESS'.
  40.         ╘HERE MUST BE ONLY ONE SPACE ON EACH SIDE OF THE '='.  ╘HE '=' MUST
  41.         BE USED IN THE ┼QUATE FILE (THE E$ DEFINITION IN THE ─EFAULT ╞ILE
  42.         HOLDS THE ACTUAL CHARACTER(S) USED IN THE ╙OURCE ╞ILE).  ╘HE ADDRESS
  43.         MUST BE A '$' FOLLOWED BY A ONE OR TWO BYTE HEX ADDRESS.
  44.      4. ╘HE EQUATES MUST BE IN LOWEST (ADDRESS) TO HIGHEST (ADDRESS) ORDER.
  45.         ┴ BINARY SEARCH IS USED TO FIND THE EQUATES, AND IF THEY ARE NOT IN
  46.         LOWEST TO HIGHEST ORDER, THEY WILL NOT BE FOUND.
  47.  
  48.   
  49. ╘HE ABOVE FILES MUST BE ON THE SAME DISK AS THE DISASSEMBLER.  
  50.  
  51.  
  52.  
  53. ╥╒╬╬╔╬╟ ╘╚┼ ─╔╙┴╙╙┼═┬╠┼╥
  54. ------------------------
  55.  
  56. ╫HEN ALL OF THE FILES HAVE BEEN SET-UP, YOU ARE READY TO RUN THE DISASSEMBLER.
  57. 'DISASSEMBLER' IS NOT COMPILED AND VERY SLOW COMPARED TO THE COMPILED VERSION.
  58. ╔N MOST CASES YOU WILL WANT TO USE THE COMPILED VERSION ('P-DISASSEMBLER').
  59. ╫HEN YOU RUN THE PROGRAM (EITHER VERSION), THE ─EFAULT ╞ILE, THE ╧PCODE ╘ABLE,
  60. AND AN ┼QUATE ╞ILE (IF SELECTED IN THE ─EFAULT ╞ILE) WILL BE READ IN.  ╫HEN
  61. THE DISASSEMBLER PROMPTS YOU FOR THE ┬INARY ╞ILENAME, YOU CAN SWITCH DISKS IF
  62. NECCESSARY.
  63.  
  64. ╘HE ┬INARY ╞ILENAME IS THE NAME OF THE ═╠ PROGRAM YOU WANT TO DISASSEMBLE.
  65. ╘HE ╙OURCE ╞ILENAME WILL BE THE NAME OF THE ╙OURCE ╞ILE (MAKES SENSE EH?).
  66. ┴N 'A-' WILL BE TACKED ONTO THE START OF THE ╙OURCE ╞ILENAME.  ╔F THE ╙OURCE
  67. ╞ILE HAS TO BE LINKED (SEE SL AND LF$ ASSIGNMENTS IN ─EFAULT ╞ILE) THE NEXT 
  68. FILENAME WILL BE 'B-'+╙OURCE ╞ILENAME.  ╘HE UNIT #'S CAN BE BETWEEN 8 AND 11.
  69. ╘HE UNCOMPILED VERSION WILL WORK WITH ╥AMDOS 128.  ╚OWEVER, THE COMPILED
  70. VERSION WILL CRASH IF ╥AMDOS 128 IS INSTALLED.  ┴FTER THE FILENAMES AND UNIT
  71. #'S ARE ENTERED, THEY ARE CHECKED TO SEE IF THEY CAUSE DISK ERRORS.  ╔F THEY
  72. DO NOT, THE ┼ND ┴DDRESS OF THE ┬INARY ╞ILE IS CALCULATED.  ┘OU WILL THEN BE
  73. ASKED FOR THE ┼NTRY ╨OINT.  ╘HE DEFAULT ┼NTRY ╨OINT IS THE ╙TART ┴DDRESS.  ╔F
  74. THEY ARE THE SAME, JUST PRESS RETURN.  ╔F THEY AREN'T THE SAME, ENTER THE
  75. ┼NTRY ╨OINT ADDRESS.  ┴╠╠ ADDRESSES AND VALUES CAN BE ENTERED IN HEX OR
  76. DECIMAL.  ╘O ENTER A HEX ADDRESS TYPE '$XXXX' WHERE 'XXXX' IS THE HEX ADDRESS.
  77. ╘O ENTER THE ADDRESS IN DECIMAL, JUST TYPE THE DECIMAL ADDRESS.  ┘OU WILL THE
  78. BE ASKED IF THE PROGRAM HAS A BUILT-IN ┬┴╙╔├ LOADER.  ╔F IT DOES, ANSWER 'Y'
  79. AND THE ┬┴╙╔├ LOADER WILL BE CORRECTLY DISASSEMBLED.
  80.  
  81.  
  82.  
  83. ╨┴╙╙ 1
  84. ------
  85.  
  86. ╘HE FIRST PASS OF THE DISASSEMBLY WILL BEGIN.  ╘HE MAIN PURPOSE OF ╨┴╙╙ 1
  87. IS TO FIND LABELS AND THEIR TYPE (BUFFER OR CODE).  ╔F YOU ARE USING AN ┼QUATE
  88. ╞ILE, THE EQUATES THAT ARE REFERENCED WILL BE MARKED.  ╧NLY THE EQUATES
  89. FOUND DURING ╨┴╙╙ 1 WILL BE INCLUDED IN THE ╙OURCE ╞ILE.  ╘HERE IS A CHANCE
  90. THAT SOME EQUATES WILL NOT BE DETECTED DURING ╨┴╙╙ 1.  ┴ MISSING LABEL (
  91. CAUSING CODE TO DISASSEMBLE AS A BUFFER) CAN CAUSE THIS.  ╔F YOU SEE A
  92. 'RUN-AWAY' BUFFER, PRESS THE ╙╨┴├┼ BAR TO ENTER ╙INGLE ╙TEP ═ODE.  ┼QUATES
  93. AND LABELS WILL NOT BE SHOWN DURING ╨┴╙╙ 1.  
  94.  
  95. ┘OU CAN STOP THE DISASSEMBLY AT ANY TIME DURING ╨┴╙╙ 1 BY PRESSING THE ╙╨┴├┼
  96. BAR (HOLD IT DOWN UNTIL IT STOPS).  ╘HIS WILL PLACE YOU IN ═ANUAL ╙INGLE ╙TEP
  97. ═ODE.  ┘OU CAN ENABLE OR DISABLE ┴UTOMATIC ╙INGLE ╙TEP ═ODE IN THE ─EFAULT
  98. ╞ILE.  ┴UTOMATIC ╙╙ ═ODE WILL STOP THE DISASSEMBLY WHENEVER THERE IS:
  99.  
  100.      1.  ┴ CALL TO ╙┼╘╬┴═ OR ╨╞╦┼┘ (ALLOWS YOU TO SET BUFFER LABEL) 
  101.      2.  ┴N INSTRUCTION OTHER THAN ╩╙╥ OR ╩═╨áUSES AN ABSOLUTE ADDRESS
  102.          THAT IS BETWEEN THE ╙TART ┴DDRESS AND THE ┼ND ┴DDRESS.  ╘HIS MAY
  103.          OR MAY NOT INDICATE A BUFFER.
  104.      3.  ╘HERE IS NO VALID MNEMONIC THAT MATCHES THE OPCODE.  ╘HIS MAY
  105.          INDICATE A BUFFER.  ╔F YOU ARE USING THE STANDARD OPCODE TABLE, IT
  106.          COULD ALSO BE AN UNDOCUMENTED OPCODE.
  107.  
  108. ╥EGARDLESS OF HOW YOU ENTER ╙╙ ═ODE, YOU WILL BE PROMPTED WITH:
  109.  
  110.      ┴>BORT - EXITS THE DISASSEMBLER.
  111.  
  112.      ┬>REAK ╨OINT - ALLOWS YOU TO SET AN ADDRESS, THAT WHEN REACHED DURING 
  113.                     ╨┴╙╙ 1 WILL STOP THE DISASSEMBLY AND PUT YOU IN ╙INGLE
  114.                     ╙TEP ═ODE.  ╔F YOU KNOW YOU WILL HAVE TO STOP THE 
  115.                     DISASSEMBLY SOMEWHERE (TO BEGIN OR END ┼╧╥'ING BYTES
  116.                     ETC.) AND YOU DON'T WANT TO TRY AND STOP IT WITH THE
  117.                     ╙╨┴├┼ BAR, SET A ┬REAK ╨OINT.  
  118.                     
  119.      ├>ONTINUE - WILL DISASSEMBLE THE NEXT LINE AND STOP.
  120.  
  121.      ┼>╧╥ - ALLOWS YOU TO ┼XCLUSIVE ╧╥ EACH BYTE.  ┼ACH BYTE, STARTING
  122.             AT THE ADDRESS YOU ENTER, WILL BE ┼╧╥'ED.  ┼NTER A VALUE OF $00
  123.             TO RETURN TO NORMAL DISASSEMBLY.  ╘HE PURPOSE OF THIS FEATURE
  124.             IS TO ALLOW YOU TO DISASSEMBLE CODE OR DATA THAT HAS BEEN 
  125.             ENCRYPTED WITH ┼╧╥.  ┘OU MUST KNOW THE START AND END ADDRESS OF
  126.             THE ENCRYPTED DATA AND THE VALUE IT IS ┼╧╥'ED WITH.  ╬╧╘┼: ╘HE
  127.             PROGRAM WILL EXPECT THE CODE/DATA TO BE ENCRYPTED.  ╔F YOU WANT
  128.             TO RE-ASSEMBLE THE SOURCE, YOU WILL EITHER HAVE TO REMOVE THE
  129.             ROUTINE THAT DECODES THE CODE/DATA (OR THE CALL TO IT), OR
  130.             RE-ENCRYPT THE CODE/DATA.
  131.  
  132.      ╠>ABEL ├ORRECTION - ALLOWS YOU TO MAKE A BUFFER OR CODE LABEL.
  133.  
  134.      ╤>UIT ╙╙ MODE - TURNS ╙INGLE ╙TEP ═ODE OFF AND GOES BACK TO NORMAL
  135.                      DISASSEMBLY.
  136.  
  137. ╘HE DISASSEMBLY WILL ALSO STOP IF A STORE TO A ╓ECTOR ADDRESS IS DETECTED.
  138. ╘HIS ALLOWS YOU TO MAKE A LABEL CORRECTION FOR THE ADDRESS PUT INTO THE
  139. ╓ECTOR.  ╔N SOME CASES YOU WILL BE ABLE TO SEE THE ADDRESS AND MAKE THE
  140. LABEL CORRECTION.  ╔F YOU CAN'T TELL WHAT ADDRESS IS BEING PUT INTO THE
  141. ╓ECTOR, JUST PRESS ╥┼╘╒╥╬.
  142.  
  143.  
  144.  
  145. ╨┴╙╙ 2
  146. ------
  147.  
  148. ╧NCE THE DISASSEMBLY REACHES ╨┴╙╙ 2, YOU CAN SIT BACK AND RELAX.  ╘HE
  149. DISASSEMBLY WILL NOT STOP UNLESS THERE ARE DISK ERRORS.  ╙INGLE ╙TEP ═ODE 
  150. IS ONLY ACTIVE DURING ╨┴╙╙á1.  ╨┴╙╙ 2 WILL ADD EQUATES AND LABELS.  ╘HE OUTPUT
  151. WILL BE ONE OR MORE ╙┼╤ OR ╨╥╟ FILE(S) (DEPENDING ON THE SIZE OF THE ┬INARY
  152. ╞ILE, AND THE ╙OURCE ╞ILE SIZE LIMIT SET IN THE DEFAULT FILE).  ╬╧╘┼ - MAKE
  153. SURE THE DISK THAT THE ╙OURCE ╞ILE WILL BE WRITTEN TO HAS PLENTY OF FREE
  154. SPACE.  ╙OURCE ╞ILES CAN BECOME VERY LARGE.
  155.  
  156.  
  157.  
  158. ┴╠╠ ─╧╬┼
  159. --------
  160.  
  161. ╫HEN THE DISASSEMBLY IS DONE, YOU WILL HAVE A ╙OURCE ╞ILE (EITHER ╙┼╤ OR ╨╥╟).
  162. ╔N MOST CASES, YOU SHOULD BE ABLE TO RE-ASSEMBLE IT WITHOUT ANY CHANGES (OF
  163. COURSE, YOU CAN MAKE CHANGES IF YOU WANT TO).  ┘OU MAY NEED TO ADD A FEW
  164. PSUEDO-OPS TO ACTIVATE SPECIAL FEATURES OF YOUR ASSEMBLER.  ┘OU MAY ALSO HAVE
  165. TO CHANGE A FEW LABELS IF THE PROGRAM MODIFIES ITSELF.  ╞OR EXAMPLE THERE MAY
  166. BE SOMETHING LIKE THIS:
  167.  
  168. LB1300  LDA #$04
  169.         STA LB1307
  170. LB1305  LDA $0000,Y
  171.  
  172. ╘HERE IS NO 'LB1307'.  ┘OU WILL HAVE TO CHANGE IT TO EITHER 'STA LB1305+2' OR
  173. 'STA $1307'.  ╘HE LATTER WILL ONLY WORK IF NO CHANGES ARE MADE THAT AFFECT THE
  174. ADDRESSES.  ╘HE EASIEST WAY TO FIND THESE LABEL CORRECTIONS IS TO TRY TO
  175. ASSEMBLE IT.  ╘HE ASSEMBLER SHOULD GIVE YOU A WARNING THAT THE LABEL IS NOT
  176. VALID.
  177.  
  178.  
  179.  
  180. ╬╧╘┼╙
  181. -----
  182.  
  183. ╘HE COMPILED VERSION WILL NOT 'RUN' MORE THAN ONCE WITHOUT RE-LOADING.  ╘HE
  184. ╞1 KEY HAS BE REDEFINED TO THE COMMAND TO 'RUN' IT AGAIN WITHOUT RE-LOADING.
  185. ╘HE LARGEST PROGRAM THAT CAN BE DISASSEMBLED WITH THE COMPILED VERSION IS
  186. SOMEWHERE UNDER 16K.  ╘HE LARGEST FILE ╔ HAVE TESTED IT WITH WAS 55 BLOCKS
  187. (APPROX. 13K).  ╘HE MAXIMUM NUMBER OF EQUATES THAT CAN BE USED WITH  THE
  188. COMPILED VERSION IS 200.  ╘HE UNCOMPILED VERSION WILL HANDLE SLIGHTLY LARGER
  189. FILES AND MORE EQUATES, BUT YOU GIVE UP ┴ ╠╧╘ OF SPEED.
  190.  
  191.  
  192. ╔F YOU HAVE ANY QUESTION, COMMENTS OR SUGGESTIONS YOU CAN REACH ME ON ╤╠╔╬╦
  193. BY EMAILING '╥OCKINROLL'.
  194.  
  195. ╩AMES ═UDGETT
  196.  
  197.